package com.jt.www.common.service;

import com.jt.www.model.entity.MessageInfoEntity;
import com.jt.www.model.vo.MessageNumVo;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.List;

/**
 * @author admin_ltf
 * @create 2019-04-13 19:52
 * 条件查询message_info表
 */
@Component
public interface MessageService {
    /**
     * 添加消息
     *
     * @param messageInfoEntity
     * @return
     */
    Integer addMessageInfo(MessageInfoEntity messageInfoEntity);

    /**
     * 根据目标用户查询消息
     */
    HashMap<String, Object> searchMessageByTargetUser(String targetUser, Integer page, Integer rows);

    /**
     * 根据目标机构查询消息
     */
    HashMap<String, Object> searchMessageByTargetOrganization(String targetOrganization, Integer page, Integer rows);

    /**
     * 根据目标地区查询消息
     */
    HashMap<String, Object> searchMessageByTargetArea(String targetArea, Integer page, Integer rows);
    /**
     * 查询所有消息
     */
//    List<MessageInfoEntity> searchAllMessage();

    /**
     * 根据主键查询消息
     */
    MessageInfoEntity searchMessageById(Integer id);

    /**
     * 查询目标用户最新的一条未读消息
     */
    MessageInfoEntity searchLatestUnreadMessage(String targetUser);

    /**
     * 根据用户id，查询某一个用户所有未读消息
     */
//    HashMap<String, Object> searchUnreadMessageByUser(String targetUserId, Integer page, Integer rows);

    /**
     * 用户点开消息后 需要把消息改为已读（已通知）
     *
     * @param id
     * @return
     */
    int updateNoticeStatetById(Integer id);

    /**
     * 删除消息
     *
     * @param id
     * @return
     */
    int deleteMessageInfoById(Integer id);

    /**
     * 首页展示，待办事项
     *
     * @param targetUser
     * @return
     */
    List<MessageNumVo> searchToDoItemByTargetUser(String targetUser);

    /**
     * 根据目标用户，查询所有未读（未通知）消息的总数
     *
     * @param targetUser
     * @return
     */
    Integer searchUnreadMessagetotalNumByUser(String targetUser);
}
